<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>计算属性</title>
    <script type="text/javascript" src="../js/vue.js"></script>
    <style>
        *{
            margin-top: 20px;
        }
        .demo1{
            height: 50px;
            background-color: aqua;
        }
    </style>
</head>
<body>
    <div id="root">
        firstName: <input type="text" v-model="name.first"> <br> <br>
        lastName: <input type="text" v-model="name.last">  <br> <br>
        fullName: <Strong>{{name.last}} - {{name.first}}</Strong>
        <hr>
        methods:
        fullName: <Strong>{{showinfo()}}</Strong>
        <hr>
        <p>计算属性: 就是拿着已有属性进行加工</p>
        fullName: <Strong>{{fullName}}</Strong>
    </div>


    <script type="text/javascript">
        const vm = new Vue({
            el: "#root",
            data() {
                return {
                    name: {
                        first: "jas",
                        last: "son"
                    }
                }
            },
            // 事件回调
            methods:{
                showinfo(){
                    return this.name.last + ' - ' + this.name.first
                },
            },
            computed:{
                // fullName:{
                //     get(){ // get初次读取的时候会调用。依赖的数据发生改变的时候。
                //         // 这里会有缓存。
                //         // 第二次调用的时候调用缓存。
                //         console.log("get")
                //         return this.name.last + ' - ' + this.name.first
                //     },
                //     // set(){
                //     //     console.log("set method computed")
                //     // }
                // },
                // ==========================================================
                // 简写：
                fullName(){
                    console.log("get")
                    return this.name.last + ' - ' + this.name.first
                }
            }
        })
    </script>
</body>
</html>